<?php

namespace App\Http\Controllers\admin;

use Illuminate\Http\Request;
use DB;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Http\Requests\PcontentPostRequest;

class PcontentController extends Controller
{
    /**
     * 展示后台项目内容列表
     *
     * @return 后台项目内容数据
     */
    public function getIndex(request $request)
    {
        //获取提交参数
        $strip = $request->input('strip','10');
        $keywords = $request->input('keywords');

        //查询分类数据
        $types = DB::table('ptype')->get();

        if(isset($keywords)){
        
            $datas = DB::table('pcontent')->where('title','like','%'.$keywords.'%')->paginate($strip);
        }else{
            
            //查询数据库
             $datas = DB::table('pcontent')->orderBy('time', 'desc')->paginate($strip); 
        }
        $status = ['禁止','开启'];
        return view('Admin.pcontent.index',['datas'=>$datas,'pages'=>$request->all(),'types'=>$types,'status'=>$status]);
    }

    //关联分类和内容
    public function getDss($pid)
    {
         //查询分类数据
        $types = DB::table('ptype')->get();

        $status = ['禁止','开启'];
        
        //查询数据
        $datas = DB::table('pcontent')->where('pid',$pid)->orderBy('time', 'desc')->paginate(10); 
        return view('Admin.pcontent.index',['datas'=>$datas,'pages'=>'','types'=>$types,'status'=>$status]);
        
    }

    /**
     * 展示后台项目内容
     *
     * @return 后台项目内容视图
     */
    public function getInfo($id)
    {
        //查询分类数据
        $datas = DB::table('pcontent')->where('id',$id)->first();
        
       return view('Admin.pcontent.info',['datas'=>$datas]);
    }
   
    /**
     * 展示后台添加项目内容
     *
     * @return 后台添加项目内容视图
     */
    public function getAdd()
    {
        //查询分类数据
        $types = DB::table('ptype')->get();
        
       return view('Admin.pcontent.add',['types'=>$types]);
    }

    /**
     * 执行数据入库
     *
     * @return 返回录入数据ID
     */
    public function postInsert(PcontentPostRequest $request)
    {
        //获取提交数据
       $data = $request->except('_token');

       $data['pic'] = $this->upload($request);

       $data['time'] = time();

       //执行数据入库
       $num = DB::table('pcontent')->insertGetId($data);

       //判断数据是否录入成功
        if($num)
        {
            return redirect('/admin/pcontent/index')->with('success', '项目内容添加成功');
        }else{
            return redirect('/admin/pcontent/add')->with('error', '项目内容添加失败');
        }
    }

    //执行文件上传
    public function upload($request)
    {
        //新文件名
        $name = md5(time()+rand(1,9999));

        //获取文件后缀名
        $su = $request->file('pic')->getClientOriginalExtension();

        //判断文件是否有上传
        if ($request->hasFile('pic')) {
            
            //移动文件
            $request->file('pic')->move('./public/uploads',$name.'.'.$su);

            //返回保存文件路径
            return '/public/uploads/'.$name.'.'.$su;
        }
    }

     /**
     * 执行删除操作
     *
     * @return 受影响行数
     */
    public function getDel($id)
    {
        
        //执行删除操作
        $num = DB::table('pcontent')->where('id',$id)->delete();
       
       if($num){
            return redirect('/admin/pcontent/index')->with('success', '项目内容删除成功');
       }else{
            return redirect('/admin/pcontent/index')->with('error', '项目内容添加成功');
       }
       
    }


    /**
     * 展示后台项目内容信息修改
     *
     * @return object
     */
    public function getEdit($id)
    {
        //查询数据
        $datas = DB::table('pcontent')->where('id',$id)->first();

        return view('Admin.pcontent.edit',['datas'=>$datas]);
    }


    /**
     * 执行修改操作
     *
     * @return 受影响行数
     */
    public function postUpdate(request $request)
    {
        //获取需要的提交数据
        $data = $request->except(['_token','id']);

        //调用方法执行文件上传
       $data['pic'] = $this->upload($request);

       //执行修改
        $res = DB::table('pcontent')->where('id',$request->input('id'))->update($data);

        if($res){
        if($data){
            return redirect('/admin/pcontent/index')->with('success', '分类信息修改成功');

        }else{
            return redirect('/admin/pcontent/index')->with('error', '分类信息修改失败');

        }
    }

}
